Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Methane Kit v0.7.0: Add iOS and tvOS platforms support #100

Merged
merged 53 commits into from
Sep 7, 2022
Merged

Conversation

egorodet
Copy link
Member

@egorodet egorodet commented Sep 6, 2022

  • Platform libraries:
    • Methane::Platform::AppIOS implementation was added to support iOS and tvOS mobile platforms (closed iOS Mobile platform support #12).
    • iOS Alert window implementation was added.
    • Limited input support was added for iOS to translate touches to mouse events (keyboard input is not supported).
    • Moved RenderContext::GetContentScalingFactor and RenderContext::GetFontResolutionDpi methods Platform::IApp interface with platform dependent implementations. Linux implementation for X11 was added.
  • Graphics libraries:
    • Manual memory management was removed from Objective-C Metal graphics implementation due to switching to ARC (automatic reference counting).
    • RenderCommandList::Draw and DrawIndexed calls implementation for Metal was changed to not exclude using of start_vertex and start_instance parameters for GPU Family < MTLGPUFamilyApple3 or MTLGPUFamilyMac2, which is essential for working on iOS Simulators.
    • Unsupported Sampler parameters were put under #ifdef APPLE_MACOS to enable tvOS support.
    • Fixed flipping camera projection up-side-down in portrait orientation.
  • Tutorials applications:
  • Tests infrastructure:
    • Add missing test targets to GCov coverage on Ubuntu.
  • Build infrastructure:
    • Added Externals/iOS-Toolchain.cmake file from iOS-CMake project to enable iOS & tvOS build configuration.
    • Apple Clang is now used with ARC enabled (automatic reference counting) via -fobjc-arc option.
    • Split MacOS and iOS application .plist configs generation via CMake/MethaneApplication.cmake
    • Split CMake/MethaneGlobalOptions.cmake from CMake/MethaneBuildOptions.cmake to allow including it in the root CMakeLists of external projects to properly set global CMake options.
    • Add support for Apple code signing via APPLE_DEVELOPMENT_TEAM cmake option.
    • Extended Build/Unix/Build.sh script to support iOS / tvOS builds via new command-line arguments --apple-platform, --apple-dev-team and --apple-deploy-target.
    • Added iOS and tvOS Simulator builds in Azure Pipelines.
    • Added CLion cmake configurations for iOS and tvOS.
    • Added iOS and tvOS build instructions to Build/README.md.

@egorodet egorodet added enhancement New feature or request infrastructure Build, tools, automation, etc. labels Sep 6, 2022
@egorodet egorodet added this to the v0.7 milestone Sep 6, 2022
@egorodet egorodet self-assigned this Sep 6, 2022
@egorodet egorodet changed the title Version 0.7.0: Add iOS and tvOS platforms support Methane Kit v0.7.0: Add iOS and tvOS platforms support Sep 6, 2022
@sonarcloud
Copy link

sonarcloud bot commented Sep 6, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

3.6% 3.6% Coverage
1.5% 1.5% Duplication

@sonarcloud
Copy link

sonarcloud bot commented Sep 6, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

5.2% 5.2% Coverage
1.5% 1.5% Duplication

@sonarcloud
Copy link

sonarcloud bot commented Sep 6, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

0.0% 0.0% Coverage
1.5% 1.5% Duplication

@egorodet egorodet merged commit 606bb2d into master Sep 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request infrastructure Build, tools, automation, etc.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

iOS Mobile platform support
1 participant